#include <Global.h>
#include "test.h"
#include "A.h"
#include "AImpl.h"
#include "B1.h"
#include "B1Impl.h"
#include "B2.h"
#include "B2Impl.h"

using namespace std;

struct C
{
	std::pair<std::string, std::string> _title = { "title", "title" };
	std::pair<float, float> _x = { 100.f, 100.f };
};

template <typename T>
void show(const char* name, T& t)
{
	cout << name << ":" << endl;
	cout << "{" << endl;
	t.show(1);
	cout << "}" << endl;

};

int main()
{
	A a("b1i", 1, "b1pr", 2, 3, "b2i", 4, "b2pr", 5, 6, "i", 7, "pr", 8, 9);
	show("a create before", a);
	a.create();
	show("a create after", a);

	B1 b1("i", 10, "pr", 11, 12);
	show("b1", b1);

	B2 b2("i", 13, "pr", 14, 15);
	show("b2", b2);

	C c;
	std::cout << c._title.first << "," << c._title.second << std::endl;
	std::cout << c._x.first << "," << c._x.second << std::endl;

	return 0;
}